﻿Imports BusinessLogicLayer
Imports BE = BusinessEntities

Imports System.IO
Imports System.Configuration.ConfigurationManager

Partial Class InsertarServicio
    Inherits System.Web.UI.Page

    Dim errores As String
    Dim errores2 As String
    Dim mensaje As String
    Public Shared servicio As String
    Dim grabaren As String
    Dim archivo As String
    Dim nombrearchivo As String

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then

            cargarTiposServicio()
            cargarProveedores()

        End If
    End Sub

    Sub cargarTiposServicio()
        'Instanciamos la clase 
        Dim capanegocios As New ServicioBL

        Try
            ddltipos.DataSource = capanegocios.ListarTipoServicios
            ddltipos.DataValueField = "COD_TIPO_SERV"
            ddltipos.DataTextField = "DESC_TIPO_SERV"
            ddltipos.DataBind()

        Catch ex As Exception

            errores = capanegocios.ChapaError
            Response.Redirect("Errores.aspx?id=" & errores)

        Finally
            'Liberamos recursos
            capanegocios = Nothing
        End Try
    End Sub

    Sub cargarProveedores()
        'Instanciamos la clase 
        Dim capanegocios As New ProveedorBL

        Try
            ddlproveedores.DataSource = capanegocios.ListarProveedores
            ddlproveedores.DataValueField = "COD_PRV"
            ddlproveedores.DataTextField = "RAZ_SOC_PRV"
            ddlproveedores.DataBind()

        Catch ex As Exception

            errores = capanegocios.ChapaError
            Response.Redirect("Errores.aspx?id=" & errores)

        Finally
            'Liberamos recursos
            capanegocios = Nothing
        End Try
    End Sub



    Protected Sub btngrabar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btngrabar.Click

        If IsNumeric(txtstock.Text) And IsNumeric(txtprecio.Text) And Val(txtprecio.Text) > 0 Then


            If CargarArchivo() = True Then

                mensaje = "Se grabó el registro"
                Dim script As String = "<script language=Javascript>"
                script += "alert('" & mensaje & "');"
                script += "</script>"
                Page.ClientScript.RegisterStartupScript(Me.GetType(), "script", script)


            Else

                mensaje = "No grabó el registro"
                Dim script As String = "<script language=Javascript>"
                script += "alert('" & mensaje & "');"
                script += "</script>"
                Page.ClientScript.RegisterStartupScript(Me.GetType(), "script", script)

            End If

        Else

            mensaje = "ingrese  informacion correcta en los campos"
            Dim script As String = "<script language=Javascript>"
            script += "alert('" & mensaje & "');"
            script += "</script>"
            Page.ClientScript.RegisterStartupScript(Me.GetType(), "script", script)

        End If

    End Sub


    Public Function CargarArchivo() As Boolean

        'Instanciamos la clase
        Dim capanegocios As New ServicioBL
        Dim objeto As New BE.ServicioBE

        'Llenas las propiedades

        objeto.tiposervicio = ddltipos.SelectedItem.Value
        objeto.proveedor = ddlproveedores.SelectedItem.Value
        objeto.nombreservicio = txtnombre.Text
        objeto.caracteristicas = txtcarac.Text
        objeto.precio = txtprecio.Text
        objeto.stock = txtstock.Text





        'Nos aseguramos que se escoja un archivo antes de enviarlo
        If elarchivo1.HasFile = False Then
            mensaje = "Por favor seleccione un archivo"

            Dim script As String = "<script language=Javascript>"
            script += "alert('" & mensaje & "');"
            script += "</script>"
            Page.ClientScript.RegisterStartupScript(Me.GetType(), "script", script)
            Return False
            Exit Function
        End If


        If elarchivo1.PostedFile.ContentLength > 10000 Then

            mensaje = "Archivo Muy grande"

            Dim script As String = "<script language=Javascript>"
            script += "alert('" & mensaje & "');"
            script += "</script>"
            Page.ClientScript.RegisterStartupScript(Me.GetType(), "script", script)
            Return False
            Exit Function

        End If

        archivo = AppSettings("RutaArchivos") + elarchivo1.FileName

        'Procedimiento para validar la extensión del archivo
        Dim thefile As FileInfo = New FileInfo(archivo)

        'If thefile.Length > 1000 Then
        '    mensaje = "No debe superar los 1000k"
        '    lblresultado.Text = mensaje
        '    Dim script As String = "<script language=Javascript>"
        '    script += "alert('" & mensaje & "');"
        '    script += "</script>"
        '    Page.ClientScript.RegisterStartupScript(Me.GetType(), "script", script)
        '    Return False
        '    Exit Function
        'End If


        If Not (thefile.Extension = ".jpg" Or thefile.Extension = ".jpeg" Or thefile.Extension = ".gif") Then
            mensaje = "El archivo debe ser de una de las extensiones indicadas"

            Dim script As String = "<script language=Javascript>"
            script += "alert('" & mensaje & "');"
            script += "</script>"
            Page.ClientScript.RegisterStartupScript(Me.GetType(), "script", script)
            Return False
            Exit Function
        End If

        'Si el archivo a subir existe en la bandeja del expediente lo renombramos
        If thefile.Exists = True Then
            Dim random As String = (Int((9999999 - 1111111 + 1) * Rnd() + 1111111)).ToString()
            objeto.foto = "Pictures" & "/" & random + Path.GetFileName(elarchivo1.PostedFile.FileName)

            grabaren = AppSettings("RutaArchivos") + random + elarchivo1.FileName

        Else
            objeto.foto = "Pictures" & "/" & Path.GetFileName(elarchivo.PostedFile.FileName)

            grabaren = AppSettings("RutaArchivos") + elarchivo1.FileName

        End If



        Try

            If capanegocios.InsertarServicio(objeto) = True Then

                'Levantamos el archivo al servidor
                elarchivo.PostedFile.SaveAs(grabaren)

                mensaje = "El archivo fue enviado al servidor"
                Dim script As String = "<script language=Javascript>"
                script += "alert('" & mensaje & "');"
                script += "</script>"
                Page.ClientScript.RegisterStartupScript(Me.GetType(), "script", script)
                Return True

            End If

        Catch ex As Exception
            errores = capanegocios.ChapaError
            Response.Redirect("Errores.aspx?id=" & errores)
            Return False
        Finally
            'Liberamos recursos
            capanegocios = Nothing
        End Try

    End Function
End Class
